[IA64] vmx_vcpu_set_rr: check rid validity
authorawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Fri, 14 Apr 2006 20:21:54 +0000 (14:21 -0600)
committerawilliam@xenbuild.aw <awilliam@xenbuild.aw>
Fri, 14 Apr 2006 20:21:54 +0000 (14:21 -0600)
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
xen/arch/ia64/vmx/vmx_vcpu.c

index 1a2ac0500650ac45b647c71f0c75cafdcddb4c94..089a4fbfcd9dee2d0b8c688be6133ed2bb1b86a3 100644 (file)
@@ -210,8 +210,11 @@ IA64FAULT vmx_vcpu_set_rr(VCPU *vcpu, UINT64 reg, UINT64 val)
     ia64_rr oldrr,newrr;
     thash_cb_t *hcb;
     extern void * pal_vaddr;
+
     vcpu_get_rr(vcpu, reg, &oldrr.rrval);
     newrr.rrval=val;
+    if (newrr.rid >= (1 << vcpu->domain->arch.rid_bits))
+        panic_domain (NULL, "use of invalid rid %lx\n", newrr.rid);
     if(oldrr.ps!=newrr.ps){
         hcb = vmx_vcpu_get_vtlb(vcpu);
         thash_purge_all(hcb);